<?php

require 'application/modele/livre.php';
require 'application/modele/categorie.php';
$nbLivresParPage = 4;

// on peut agir en GET (liste des livres) et POST (création d'un livre)
// si aucune des 2 actions, on affiche le formulaire d'ajout de livre
if (!isset($_POST ['a']) && !isset($_GET['a'])) {
    $category = new Categorie($mdb2);
    $categories = $category->liste();
    $smarty->assign("categories", $categories);
    $smarty->assign("message", "");
    $smarty->display("livre.tpl");

    // utilisation de la recherche
} elseif (isset($_GET['a']) && $_GET['a'] == 'recherche') {
    if (!isset($_GET['page'])) {
        $page = 1;
    } else {
        $page = $_GET['page'];
    }

    // on récupere les critères de recherche
    $arrayCriteres['titre'] = $_GET['titre'];
    $arrayCriteres['auteur'] = $_GET['auteur'];
    $arrayCriteres['categorie'] = $_GET['categorie'];
    $criteres = '&titre=' . $_GET['titre'] . '&auteur=' . $_GET['auteur'] . '&categorie=' . $_GET['categorie'] . '&';

    $livre = new Livre($mdb2);
    $livres = $livre->liste($page, $arrayCriteres);
    $total = ceil($livre->totalLivres($arrayCriteres) / $nbLivresParPage);

    $arrayPages = array();
    for ($i = 0; $i <= ($total - 1); $i++) {
        $arrayPages[$i] = $i + 1;
    }
    // on charge la liste des catégories
    $category = new Categorie($mdb2);
    $categories = $category->liste();
    $smarty->assign("categories", $categories);

    $smarty->assign("arrayCriteres", $arrayCriteres);
    $smarty->assign("total", $total);
    $smarty->assign("livres", $livres);
    $smarty->assign("pages", $arrayPages);
    $smarty->assign("type", "recherche");
    $smarty->assign("criteres", $criteres);
    $smarty->display("catalogue.tpl");

    // Liste des livres disponible dans le catalogue
} elseif (isset($_GET['a']) && $_GET['a'] == 'liste') {
    if (!isset($_GET['page'])) {
        $page = 1;
    } else {
        $page = $_GET['page'];
    }
    $livre = new Livre($mdb2);
    $livres = $livre->liste($page);
    $total = ceil($livre->totalLivres() / $nbLivresParPage);
    $arrayPages = array();
    for ($i = 0; $i <= ($total - 1); $i++) {
        $arrayPages[$i] = $i + 1;
    }
    // on charge la liste des catégories
    $category = new Categorie($mdb2);
    $categories = $category->liste();
    $smarty->assign("categories", $categories);
    $smarty->assign("total", $total);
    $smarty->assign("livres", $livres);
    $smarty->assign("pages", $arrayPages);
    $smarty->assign("type", "liste");
    $smarty->display("catalogue.tpl");
} else {
    // Les extensions que l'on autorise
    $extensions_valides = array('jpg', 'jpeg', 'gif', 'png');
    //1. strrchr renvoie l'extension avec le point (« . »).
    //2. substr(chaine,1) ignore le premier caractère de chaine.
    //3. strtolower met l'extension en minuscules.
    $extension_upload = strtolower(substr(strrchr($_FILES['image']['name'], '.'), 1));

    $category = new Categorie($mdb2);
    $categories = $category->liste();
    $smarty->assign("categories", $categories);

    // on vérifie que l'extension du fichier est correcte
    if (in_array($extension_upload, $extensions_valides)) {
        $isbn = $_POST['isbn'];
        $titre = $_POST['titre'];
        $auteur = $_POST['auteur'];
        $editeur = $_POST['editeur'];
        $dateParution = $_POST['dateParution'];
        $resume = $_POST['resume'];
        // Separateur decimal format américain (pour la base)
        $prix = $_POST['prix'];
        $image = $_FILES['image']['name'];
        $categorie = $_POST['categorie'];
        $nomLivre = "application/images/livres/" . $image;
        $resultat = move_uploaded_file($_FILES['image']['tmp_name'], $nomLivre);
        // si le fichier a bien été transféré sur le serveur
        if ($resultat) {
            $livre = new Livre($mdb2);
            $result = $livre->ajouter($isbn, addslashes($titre), addslashes($auteur), addslashes($editeur), addslashes($dateParution), addslashes($resume), $prix, $image, $categorie);

            $smarty->assign("message", "");
            if ($result) {
                $flash['type'] = "success";
                $flash['message'] = "Livre ajouté avec succès";
            } else {
                $flash['type'] = "error";
                $flash['message'] = "Livre déjà existant !";
            }
            $smarty->assign("flash", $flash);
            $smarty->display("livre.tpl");
        } else {
            $flash['type'] = "success";
            $flash['message'] = "Livre ajouté avec succès";
            $smarty->assign("flash", $flash);
            $smarty->display("livre.tpl");
        }
    } else {
        $flash['type'] = "success";
        $flash['message'] = "Format de fichier non supportée";
        $smarty->assign("flash", $flash);
        $smarty->display("livre.tpl");
    }
}
?>